/**
 * Class Map
 */

			function Map ()
			{
				this.store = new Object();
				this.keys = new Array();
			}
			
			Map.prototype.put = function (key, val)
			{
				this.store[key] = val;
				this.keys.push(key);				
			}
			
			Map.prototype.take = function (key)
			{				
				return this.store[key];
			}
			
			Map.prototype.keys = function ()
			{
				return new Arr(this.keys);
			}
			
/**
 * Array Class
 */
			
			function Arr (i)
			 {
				 this.array = new Array();
				 this.array = i;
			 }			

			Arr.prototype.ele = function ()
			 {
			 	switch(arguments.length){
			 		case 1:			 			
						return this.array[arguments[0]];
						break;
			 		case 2:			 			
						return this.array[arguments[0]][arguments[1]];
						break;
			 		case 3:			 			
						return this.array[arguments[0]][arguments[1]][arguments[2]];
						break;
			 		default:
			 			throw new Error("Error length of parameters.");
				}
			 }
			 
			Arr.prototype.len = function ()
			 {
			 	return this.array.length; 
			 }	
			 
/**
 * Class ResourceData
 */			 
			 
			/**
			 * @params, data -- an according JS object of java class ResourceData
			 */
			function ResourceData (data){
				this.typeId = data.typeId;
				this.resId = data.resId;
				this.values = new Arr(data.propertyValues);
			}
									
			ResourceData.prototype.getTypeId = function (){
				return this.typeId;
			}
			
			ResourceData.prototype.getResId = function (){
				return this.resId;
			}

			ResourceData.prototype.getPropertyValues = function (){
				return this.values;
			}
